package com.wuliu.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.wuliu.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.wuliu.common.core.domain.BaseEntity;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;

/**
 * 员工资料对象 bas_employee
 *
 * @author realue
 * @date 2023-10-24
 */
@ApiModel
public class BasEmployee extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    @ApiModelProperty(value = "${comment}")
    private Long id;

    /**
     * 员工编号
     */
    @NotBlank(message = "员工编号不能为空")
    @Excel(name = "员工编号")
    @ApiModelProperty(value = "员工编号")
    private String empNo;

    /**
     * 员工姓名
     */
    @NotBlank(message = "员工姓名不能为空")
    @Excel(name = "员工姓名")
    @ApiModelProperty(value = "员工姓名")
    private String empName;

    /**
     * 性别
     */
    @Excel(name = "性别")
    @ApiModelProperty(value = "性别")
    private Integer sex;

    /**
     * 电话
     */
    @Excel(name = "电话")
    @ApiModelProperty(value = "电话")
    private String mobile;

    /**
     * 身份证号
     */
    @Excel(name = "身份证号")
    @ApiModelProperty(value = "身份证号")
    private String idCard;

    /**
     * 生日
     */
    @Excel(name = "生日")
    @ApiModelProperty(value = "生日")
    private String birthday;

    /**
     * 年龄
     */
    @Excel(name = "年龄")
    @ApiModelProperty(value = "年龄")
    private Integer age;

    /**
     * 省
     */
    @Excel(name = "省")
    @ApiModelProperty(value = "省")
    private String province;

    /**
     * 市
     */
    @Excel(name = "市")
    @ApiModelProperty(value = "市")
    private String city;

    /**
     * 区/县
     */
    @Excel(name = "区/县")
    @ApiModelProperty(value = "区/县")
    private String district;

    /**
     * 详细地址
     */
    @Excel(name = "详细地址")
    @ApiModelProperty(value = "详细地址")
    private String address;

    /**
     * 所属网点
     */
    @Min(value = 0,message = "员工所属站点不能为空")
    @Excel(name = "所属网点")
    @ApiModelProperty(value = "所属网点")
    private Long deptId;

    /**
     * 网点名称
     */
    @NotBlank(message = "员工所属站点名称不能为空")
    @Excel(name = "网点名称")
    @ApiModelProperty(value = "网点名称")
    private String deptName;

    /**
     * 岗位
     */
    @Excel(name = "岗位")
    @ApiModelProperty(value = "岗位")
    private String post;

    /**
     * 员工类型1.员工 2.司机 3.其他
     */
    @Excel(name = "员工类型1.员工 2.司机 3.其他")
    @ApiModelProperty(value = "员工类型1.员工 2.司机 3.其他")
    private Integer empType;

    /**
     * 状态0.离职 1.在职
     */
    @Excel(name = "状态0.离职 1.在职")
    @ApiModelProperty(value = "状态0.离职 1.在职")
    private Integer status;

    /**
     * 入职日期
     */
    @Excel(name = "入职日期")
    @ApiModelProperty(value = "入职日期")
    private String entryDate;

    /**
     * 离职日期
     */
    @Excel(name = "离职日期")
    @ApiModelProperty(value = "离职日期")
    private String leaveDate;

    /**
     * 版本号
     */
    @Excel(name = "版本号")
    @ApiModelProperty(value = "版本号")
    private Integer version;

    /**
     * 驾驶证图片
     */
    @Excel(name = "驾驶证图片")
    @ApiModelProperty(value = "驾驶证图片")
    private String driverPhoto;

    /**
     * 账套号
     */
    @Excel(name = "账套号")
    @ApiModelProperty(value = "账套号")
    private String sysAccount;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setEmpNo(String empNo) {
        this.empNo = empNo;
    }

    public String getEmpNo() {
        return empNo;
    }

    public void setEmpName(String empName) {
        this.empName = empName;
    }

    public String getEmpName() {
        return empName;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }

    public Integer getSex() {
        return sex;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getMobile() {
        return mobile;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    public String getIdCard() {
        return idCard;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getAge() {
        return age;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getProvince() {
        return province;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getCity() {
        return city;
    }

    public void setDistrict(String district) {
        this.district = district;
    }

    public String getDistrict() {
        return district;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAddress() {
        return address;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setPost(String post) {
        this.post = post;
    }

    public String getPost() {
        return post;
    }

    public void setEmpType(Integer empType) {
        this.empType = empType;
    }

    public Integer getEmpType() {
        return empType;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getStatus() {
        return status;
    }

    public void setEntryDate(String entryDate) {
        this.entryDate = entryDate;
    }

    public String getEntryDate() {
        return entryDate;
    }

    public void setLeaveDate(String leaveDate) {
        this.leaveDate = leaveDate;
    }

    public String getLeaveDate() {
        return leaveDate;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public Integer getVersion() {
        return version;
    }

    public void setDriverPhoto(String driverPhoto) {
        this.driverPhoto = driverPhoto;
    }

    public String getDriverPhoto() {
        return driverPhoto;
    }

    public void setSysAccount(String sysAccount) {
        this.sysAccount = sysAccount;
    }

    public String getSysAccount() {
        return sysAccount;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("empNo", getEmpNo())
                .append("empName", getEmpName())
                .append("sex", getSex())
                .append("mobile", getMobile())
                .append("idCard", getIdCard())
                .append("birthday", getBirthday())
                .append("age", getAge())
                .append("province", getProvince())
                .append("city", getCity())
                .append("district", getDistrict())
                .append("address", getAddress())
                .append("deptId", getDeptId())
                .append("deptName", getDeptName())
                .append("post", getPost())
                .append("empType", getEmpType())
                .append("status", getStatus())
                .append("entryDate", getEntryDate())
                .append("leaveDate", getLeaveDate())
                .append("version", getVersion())
                .append("driverPhoto", getDriverPhoto())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("sysAccount", getSysAccount())
                .append("remark", getRemark())
                .toString();
    }
}
